/**
 * 数据库管理系统前端初始化脚本
 * 负责初始化UI元素和基本事件处理
 */

// 全局变量
const API_BASE = 'http://localhost:8080/api';
let currentPage = 0;
let pageSize = 10;
let currentDbTable = '';

// 页面加载完成后执行
document.addEventListener('DOMContentLoaded', function() {
    // 初始化侧边菜单
    initSidebar();
    // 显示欢迎页面，而不是自动加载"竞争机型"内容
    showWelcomePage();
});

/**
 * 初始化侧边菜单
 */
function initSidebar() {
    // 一级菜单切换展开/收起
    document.querySelectorAll('.menu-title').forEach(item => {
        item.addEventListener('click', (e) => {
            const menuItem = e.currentTarget.parentNode;
            
            // 如果是叶子菜单，直接激活
            if (!menuItem.querySelector('.submenu')) {
                document.querySelectorAll('.menu-title').forEach(m => m.classList.remove('active'));
                e.currentTarget.classList.add('active');
                return;
            }
            
            // 切换展开/收起状态
            if (menuItem.classList.contains('open')) {
                menuItem.classList.remove('open');
            } else {
                // 关闭其他菜单
                document.querySelectorAll('.menu-item.open').forEach(m => {
                    if (m !== menuItem) {
                        m.classList.remove('open');
                    }
                });
                menuItem.classList.add('open');
            }
        });
    });
    
    // 二级菜单点击事件
    document.querySelectorAll('.submenu-item').forEach(item => {
        // 检查是否有三级菜单
        if (item.hasAttribute('data-submenu')) {
            // 如果有三级菜单，为二级菜单标题添加点击事件
            const submenuTitle = item.querySelector('.submenu-title');
            if (submenuTitle) {
                submenuTitle.addEventListener('click', (e) => {
                    e.stopPropagation(); // 阻止事件冒泡
                    
                    // 清除所有二级菜单的激活状态
                    document.querySelectorAll('.submenu-title').forEach(m => m.classList.remove('active'));
                    // 设置当前二级菜单激活
                    e.currentTarget.classList.add('active');
                    
                    // 切换三级菜单展开/收起状态
                    if (item.classList.contains('open')) {
                        item.classList.remove('open');
                    } else {
                        // 关闭其他三级菜单
                        document.querySelectorAll('.submenu-item[data-submenu].open').forEach(m => {
                            if (m !== item) {
                                m.classList.remove('open');
                            }
                        });
                        item.classList.add('open');
                    }
                });
            }
        } else {
            // 如果没有三级菜单，直接为二级菜单项添加点击事件
            item.addEventListener('click', (e) => {
                // 清除所有菜单的激活状态
                document.querySelectorAll('.submenu-item').forEach(m => m.classList.remove('active'));
                document.querySelectorAll('.third-menu-item').forEach(m => m.classList.remove('active'));
                // 设置当前激活
                e.currentTarget.classList.add('active');
                
                // 根据data-target加载对应内容
                const target = e.currentTarget.getAttribute('data-target');
                if (target) {
                    if (typeof loadContent === 'function') {
                        loadContent(target);
                    } else {
                        console.warn('loadContent函数未定义，请确保main.js已加载');
                        const mainContent = document.getElementById('mainContent');
                        mainContent.innerHTML = '<div class="loading">正在初始化模块，请稍候...</div>';
                        // 设置一个延迟，等待main.js加载
                        setTimeout(() => {
                            if (typeof loadContent === 'function') {
                                loadContent(target);
                            } else {
                                showMessage('系统模块尚未加载完成，请刷新页面重试', 'error');
                            }
                        }, 500);
                    }
                }
            });
        }
    });
    
    // 三级菜单点击事件
    document.querySelectorAll('.third-menu-item').forEach(item => {
        item.addEventListener('click', (e) => {
            e.stopPropagation(); // 阻止事件冒泡
            
            // 清除所有三级菜单的激活状态
            document.querySelectorAll('.third-menu-item').forEach(m => m.classList.remove('active'));
            // 设置当前三级菜单激活
            e.currentTarget.classList.add('active');
            
            // 根据data-target加载对应内容
            const target = e.currentTarget.getAttribute('data-target');
            if (target) {
                if (typeof loadContent === 'function') {
                    loadContent(target);
                } else {
                    console.warn('loadContent函数未定义，请确保main.js已加载');
                    const mainContent = document.getElementById('mainContent');
                    mainContent.innerHTML = '<div class="loading">正在初始化模块，请稍候...</div>';
                    // 设置一个延迟，等待main.js加载
                    setTimeout(() => {
                        if (typeof loadContent === 'function') {
                            loadContent(target);
                        } else {
                            showMessage('系统模块尚未加载完成，请刷新页面重试', 'error');
                        }
                    }, 500);
                }
            }
        });
    });

}

/**
 * 显示消息提示
 * @param {string} message - 消息内容
 * @param {string} type - 消息类型(success/error/info/warn)
 */
function showMessage(message, type = 'info') {
    // 创建消息元素
    const messageEl = document.createElement('div');
    messageEl.className = `alert alert-${type}`;
    messageEl.textContent = message;
    
    // 添加到页面
    const messageContainer = document.getElementById('messageContainer');
    if (messageContainer) {
        messageContainer.appendChild(messageEl);
    } else {
        const container = document.createElement('div');
        container.id = 'messageContainer';
        container.className = 'message-container';
        container.appendChild(messageEl);
        document.body.appendChild(container);
    }
    
    // 自动消失
    setTimeout(() => {
        messageEl.classList.add('fade-out');
        setTimeout(() => {
            if (messageEl.parentNode) {
                messageEl.parentNode.removeChild(messageEl);
            }
            // 如果没有消息，移除容器
            if (document.getElementById('messageContainer') && document.getElementById('messageContainer').children.length === 0) {
                document.getElementById('messageContainer').remove();
            }
        }, 500);
    }, 3000);
}

/**
 * 显示欢迎页面
 */
function showWelcomePage() {
    const mainContent = document.getElementById('mainContent');
    mainContent.innerHTML = `
        <div class="welcome-container">
            <h1>欢迎使用数据库管理系统</h1>
            <p>请从左侧菜单选择要管理的数据内容</p>
            <div class="system-info">
                <p>系统版本: 1.0.0</p>
                <p>当前时间: ${new Date().toLocaleString()}</p>
            </div>
        </div>
    `;
    
    // 添加欢迎页样式
    if (!document.getElementById('welcome-styles')) {
        const style = document.createElement('style');
        style.id = 'welcome-styles';
        style.textContent = `
            .welcome-container {
                text-align: center;
                padding: 50px 20px;
                background-color: #f9f9f9;
                border-radius: 8px;
                box-shadow: 0 2px 10px rgba(0,0,0,0.05);
                margin: 20px;
            }
            .welcome-container h1 {
                color: #333;
                margin-bottom: 20px;
            }
            .system-info {
                margin-top: 50px;
                font-size: 14px;
                color: #666;
            }
        `;
        document.head.appendChild(style);
    }
}

// 确保这些函数可全局访问
window.initSidebar = initSidebar;
window.showMessage = showMessage;
window.showWelcomePage = showWelcomePage; 